$╞242 ╘╠╦╔7 ╔F LINE 2 (╔┼┼┼ ┴╘╬) ON PORT ┴ [$00] IS HIGH, AN ┴╘╬ SIGNAL HAS BEEN RECEIVED SO BRANCH TO ╘╠╦╔10 TO HANDLE IT.
$╞245 ╔F LINE 3 (╬─┴├) ON PORT ├ [$02] IS ZERO, WE ARE WAITING FOR THE LISTENER TO ACCEPT THE DATA SO BRANCH TO ╘╠╦╔7.
$╞248 ┼NABLE INTERRUPTS.
$╞249 ╩╙╥ ╟┼╘ [$─410] TO GET THE NEXT DATA BYTE TO BE TRANSMITTED.
$╞24├ ─ISABLE INTERRUPTS.
$╞24─ ╔F BIT 7 OF ╔╧╞╠╟ [$6├] IS SET, THE ╔/╧ CHIPS ARE STILL CONFIGURED FOR ╔┼┼┼ BUS ACTIVITY SO BRANCH TO ╘╠╦╔8.
$╞250 ╩╙╥ ┬╒╙╧╬ [$╞┼11] TO SET PORT ┬ IN ╥┼┴─ MODE.
$╞253 ╘╠╦╔8 ╙ET PORT ┬ [$01] TO $╞╞.
$╞257 ╙ET LINE 0 (─┴╓) ON PORT ├ [$02].
$╞259 ╙ET LINE 1 (┼╧╔) ON PORT ├ [$02].
$╞25┬ ╠OAD .┴ WITH $37. ╘HIS INSTRUCTION IS NOT NEEDED.
$╞25─ ╘╠╦╔9 ╔F LINE 2 (╔┼┼┼ ┴╘╬) ON PORT ┴ [$00] IS HIGH, AN ┴╘╬ SIGNAL HAS BEEN RECEIVED SO BRANCH TO ╘╠╦╔10 TO HANDLE IT.
$╞260 ╔F LINE 3 (╬─┴├) ON PORT ├ [$02] IS HIGH BRANCH TO ╘╠╦╔9.
$╞263 ╩UMP TO ╘╠╦╔1 TO CONTINUE TALKING.
$╞266 ╘╠╦╔10 ┴N ┴╘╬ SIGNAL HAS BEEN DETECTED SO JUMP TO ┴╘╬╙╥╔ [$╞0├┴] TO HANDLE IT.
╬OTE: ╘HE NEXT CODE SEGMENT IS NEVER EXECUTED.
$╞269 ╙ET LINE 0 (─┴╓) ON PORT ├ [$02].
$╞26┬ ╥ETURN.
╬OTE: ╘HE NEXT CODE SEGMENT IS NEVER EXECUTED.
$╞26├ ╙ET LINE 2 (╬╥╞─) ON PORT ├ [$02].
$╞26┼ ╙ET LINE 1 (SERIAL ┴╘╬ ┴├╦) ON PORT ┴ [$00].
$╞270 ╥ETURN.
├╬╘╔╬╘ ─ISK CONTROLLER INITIALIZATION
$╞271 ╙ET ═├╥ [$14] TO $30.
$╞275 ╙ET ╔┼╥ [$12] TO $10.
$╞279 ╙ET ╨ORT ┴ [$00] TO $╞─.
$╞27─ ╙ET ╨ORT ┬ [$01] TO $╞╞.
$╞281 ╙ET ├─╥╔╓┼ [$4┼┴8] TO $╞╞.
$╞284 ╙ET ╨ORT ├ [$02] TO $├3.
$╞288 ╙ET ╨ORT ─ [$03] TO $55.
$╞28├ ╙ET ╠┴╘├╚╙ [$┴8] AND ╚─╫╔╠ [$┴000] TO $0┼.
$╞293 ╙ET ╒╠┴# [$1┴] TO $3├ TO GENERATE AN ╔╥╤ INTERRUPT APPROXIMATELY EVERY 15MS.
$╞297 ╙ET ╚┬╔─ [$4┼┴2] TO $08.
$╞29├ ╙ET ─┬╔─ [$4┼┴├] TO $07.║FP0
╠├├ ═AIN CONTROLLER LOOP
$╞2┴┴ ╙AVE STACK POINTER AT ╙┴╓╙╨ [$4┼┴─].
$╞2┴┼ ╙CAN THE JOB QUEUE ╩╧┬╙ [$4├00-0┬] USING .┘ AS AN INDEX (STARTS AT $00 AND IS INCREMENTED TO $0┬). ╔F BIT 7 OF A COMMAND BYTE IS SET, BRANCH TO ╠├├1 TO PROCESS IT.
$╞2┬┴ ╩OB QUEUE HAS BEEN SCANNED WITH NO ACTION REQUIRED SO JUMP TO ┼╬─ [$╞76├].
$╞2┬─ ╠├├1 ╙AVE .┘ (JOB QUEUE INDEX) IN ╩╧┬╬ [$4┼┴9].
$╞2├0 ╟ET DRIVE NUMBER FOR THIS JOB BY ┴╬─ING WITH $01.
$╞2├2 ╔F ─RIVE NUMBER IS ZERO, BRANCH TO ╠├├2.
$╞2├4 ╔F ─╒┴╠╞╠ [$┬7] = $01 THEN THIS IS A DUAL DRIVE AND DRIVE 1 EXISTS SO BRANCH TO ╠├├2.
$╞2├8 ╙ET .┴ TO $0╞ (─╥╔╓┼ 1 ╬╧╘ ┴╠╠╧╫┼─) AND JUMP TO ┼╥╥╥ [$╞670].
$╞2├─ ╠├├2 ╙AVE DRIVE NUMBER IN BOTH ─╥╔╓┼ [$┬0] AND ├─╥╔╓┼ [$4┼┴8].
$╞2─2 ╠OAD .┘ FROM ╩╧┬╬ [$4┼┴9] AND GET THE JOB QUEUE COMMAND FROM ╩╧┬╙,┘ [$4├00,┘].
$╞2─8 ┴╬─ THE COMMAND WITH $78 TO MASK OFF THE DRIVE BITS AND COMMAND INDICATOR FLAG AND SAVE THE RESULT IN ╩╧┬ [$4┼┴┬].
$╞2── ╠OAD .┴ FROM ╩╧┬╘╥╦,┘ [$4├0├,┘] (THE TRACK FOR THIS COMMAND) AND SAVE IT IN ╩╧┬╘╥╦ [$4┼┴5].
$╞2┼3 ╠OAD .┴ FROM ╩╧┬╙┼├,┘ [$4├18,┘] (THE SECTOR FOR THIS COMMAND) AND SAVE IT IN ╩╧┬╙┼├ [$4┼┴6].
$╞2┼9 ╩╙╥ ╧╬─┼╠ [$╞733] TO TURN ON THE DRIVE MOTOR.
$╞2┼├ ╠OAD .┴ FROM ╩╧┬╬ [$4┼┴9] AND DETERMINE THE ADDRESS OF THE BUFFER BY ADDING $40. ╙AVE THE RESULT IN ┬╒╞╨╬╘+1 [$43].
$╞2╞4 ╙ET ╧╓╥╨╬╘ [$75/$76] TO $00/$4╞ WHICH POINTS TO THE OVERFLOW BUFFER ($4╞00).
$╞2╞├ ├LEAR THE LOW ORDER PART OF THE BUFFER POINTER ┬╒╞╨╬╘ [$42].
$╞300 ╙ET ╟├╥╞╠╟ [$4┼┬1] TO ZERO.
$╞303 ╠OAD .┴ WITH ╩╧┬╘╥╦ [$4┼┴5] AND IF ZERO, BRANCH TO ╠├├3.
$╞308 ╩╙╥ ═╧╓╚┼─ [$╞693] TO STEP TO THE DESIRED TRACK.
$╞30┬ ╠├├3 ╙ET ------ [$4┼┬3] AND ------ [$4├┼╞] TO $02.
$╞313 ╠OAD .┴ WITH ╩╧┬ [$4┼┴┬]. ┴ USELESS INSTRUCTION SINCE THE VALUE IN .┴ IS CLOBBERED BY THE NEXT SUBROUTINE CALL.
$╞316 ╩╙╥ ╥┼┴─╧╬ [$╞┼1┴] TO SET PORT ┬ IN DISK READ MODE.
$╞319 ╩╙╥ ╙┼┴╦ [$╞321] TO VERIFY POSITION OF ╥/╫ HEAD.
$╞31├ ╔F .├ IS CLEAR (HEAD IN CORRECT POSITION), THEN BRANCH TO ╙┼┼╦40.
$╞31┼ ┼RROR OF SOME SORT SO JUMP TO ├╠┼╬╒╨ [$╞65┼].
╙┼┴╦ ╥EAD ANY HEADER ON CURRENT TRACK
$╞321 ╙ET ╙┘╬├ MARK COUNTER, ╘═╨ [$4┼┴┼], TO $5┴ (90).
$╞326 ╙ET .╪ TO $06 WHICH COUNTS THE NUMBER OF BYTES TO BE READ AFTER A HEADER IS FOUND.
$╞328 ╙ET HEADER BLOCK IDENTIFIER TO $52 (THE ╟├╥ IMAGE OF ╚┬╔─ = $08).
$╞32─ ╙┼┼╦10 ╩╙╥ ╙┘╬├ [$╞4┴6] TO WAIT FOR A ╙┘╬├ MARK.